iT邦幫忙

2022 iThome 鐵人賽

DAY 3
1
AI & Data

30天帶你從零基礎到Python爬蟲系列 第 3

[Day3] 什麼時候該做什麼 - Python條件判斷

  • 分享至 

  • xImage
  •  

一般來說程式都是從第一行一直執行到最後一行,所以當我們想要程式在某些條件下做某些敘述的時候,就可以使用條件判斷,那就需要用到條件判斷來控制流程。以下是if判斷式(如果)

if (condition):
    statement

要特別注意的是if跟condition之間要有一個空格,至於括號是可有可無的,另外Python如果遇到這種階層性架構不是像其它程式語言一樣使用大括號{},而是使用縮排來判斷,只要在同一層縮排就是屬於上方「:」的內容,因此縮排在 Python 中是十分重要的,非常非常非常的重要,這是新手很常犯的錯誤一定要特別注意!

舉個例子好了

age = int(input("enter your age: "))
if age > 18:
	print("You are an adult")

不知道你還記不記得上一篇講到input()這個語法是用來讓使用者輸入的,輸入資料的型態會是string,如果要做數值比較的話必須先轉成int或是float。

但這樣子符合條件就執行,若不符合卻沒有任何動作,在實際應用上不太常見,理論上應該有要可以選擇的分支才對,所以Python還有更進階的if判斷式(如果⋯否則)

if condition:
    statement1
else:
    statement2

用中文來說就是如果condition為真,就會執行statement1,否則我就做statement2。

age = int(input("enter your age: "))
if age > 18:
	print("You are an adult")
else:
	print("You’re just a kid")

前面說的if…else比較像是二選一,但在現實中更常遇到的是有多種情況的多選一,當需要判斷的可能狀況有很多種時,就可以使用 if…elif…else 結構來達成需求。語法如下:

if conditionA:
    statementA
elif conditionB:
    statementB
elif conditionC:
    statementC
else:
    statementD

elif的數量並沒有限制,但還是不要無限制的設定太多條件,這樣不但影響執行速度可讀性也會大大降低。現在來做一個將輸入成績區分為 A-F 等 5 種等級的例子:

score = int(input("Enter your score: "))
if score >= 95:
	print("A")
elif score >= 90:
	print("B")
elif score >= 80:
	print("C")
elif score >= 70:
	print("D")
elif score >= 60:
	print("E")
else:
print("F")

要注意的地方是如果是有包含關係的話,比較嚴苛的條件要放上面,你可以把它看成由上而下的單選題,只要符合最上面的條件就不會再往下看到其他條件了。像是90~95分B等,但我在設定條件的時候並不需要多此一舉的設score >= 90 and score < 95,因為高於95分的成績是不可能進入到第二層篩選的。


上一篇
[Day2] Python各種基礎操作(註解&型態&運算子&縮排)
下一篇
[Day4] 條件判斷小試身手 - 計算BMI
系列文
30天帶你從零基礎到Python爬蟲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言